fix: allow live queries to access optimistic inserts before sync completes #641
+65
−1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fix optimistic inserts not showing in live queries before sync completes.
Related Discord discussion: https://discord.com/channels/933657521581858818/1374668288549847071/1423800713221505145
The Problem
We ran into an issue where if you:
The live query would return empty results until Electric finished syncing, even though the optimistic data was sitting right there in the collection.
This was breaking our use case where we create message collections on-demand (per-thread partitioning) and insert the first message before Electric has synced anything.
The Fix
The issue was in allCollectionsReadyOrInitialCommit() - it was refusing to run the graph on collections that were still idle or loading, even if they had data.
Added a simple check: if collection.size > 0, let the graph run. This allows processing optimistic data while waiting for sync to complete.
Tested in our app and confirmed the messages now show up instantly instead of waiting for Electric to sync.
Disclaimer: I am NOT an expert on this codebase.. unsure if there are downstream ramifications to this tweak, but all of the tests pass...
Side note: the PR template tells the user to verify they have followed the contributing guide @ https://github.com/TanStack/db/blob/main/CONTRIBUTING.md - which no longer exists.